|
![](/i/fill.gif) |
Simon Lemieux <lem### [at] yahoo com> wrote:
: I don't exactly know the difference, but I guess a 4D fractal is a repetition of
: a fractal design in space, thus making a 3D object... am I right?
Nope.
A "regular" 2-dimensional julia uses complex numbers. If you are interested,
the formula is the following:
For each point c in the complex plane, the julia set (let's call it J) will
be:
J = { c | lim Z(n) != inf }
n->inf
where:
Z(0) = c
Z(n) = Z(n-1)^2 + Y
where Y is a complex number (in a Mandelbrot set it will be c itself, in a
Julia set it's a chosen complex number which doesn't change).
When the Julia set is displayed in the complex plane (it's usually
denoted so that the x-axis in a cartesian system denotes the real part of
the number and the y-axis denotes the imaginary part) it forms the peculiar
shape you know.
(The colors displayed outside the set are not part of the set but are
created by a simple trick.)
Now, the 4-dimensional julia uses either hypercomplex or quaternion
numbers instead of complex numbers.
The formula is exactly the same as above, the only difference being that
hypercomplex and quaternion numbers have 4 parts instead of 2.
This means that the set will be formed in the 4-dimensional space.
The difference between hypercomplex and quaternion numbers is that for
numbers with more than 2 parts some mathematical operations (such as
multiplication) are not unambiguously defined. Hypercomplex and quaternion
numbers use different type of multiplication.
Since the set has 4 dimensions, a 3-dimensional "slice" has to be taken
from the set in order to represent it in 3D space.
This is similar to cutting a 3D object with a plane and getting a 2D shape
in the plane. But instead of making a 2D slice from a 3D object, we are
making a 3D slice from a 4D object.
It's not possible to represent a 4D object in itself because our brain
can't handle that information. This is why we need a 3D slice of that object.
: For the 2D fractals, I would prefer to construct them myself...
Why, when there's already a pattern for that?
--
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):_;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/
Post a reply to this message
|
![](/i/fill.gif) |